package project.aquarius.server.core.worker;

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;

import project.aquarius.server.game.GameManager;
import project.aquarius.server.proxy.listener.MessageListener;
import project.aquarius.server.proxy.message.Message;
import project.aquarius.server.user.UserManager;

public class WorksManager {

	private UserManager userManager;
	private GameManager gameManager;
	private MessageListener coreMessageListener;

	private BlockingQueue<SalaWorker> salaWorkerQueue = new LinkedBlockingQueue<SalaWorker>();
	private BlockingQueue<GameWorker> gameWorkerQueue = new LinkedBlockingQueue<GameWorker>();
	private BlockingQueue<Message> salaMessageQueue = new LinkedBlockingQueue<Message>();
	private BlockingQueue<Message> gameMessageQueue = new LinkedBlockingQueue<Message>();

	public void sendToExecute(Message message) {
		// TODO:
	}

	public void sendToCore(Message message) {
		// TODO:
	}

	public void addFreeSalaWorker(SalaWorker worker) {
		// TODO:
	}

	public void addFreeGameWorker(GameWorker worker) {
		// TODO:
	}

	public SalaWorker waitForFreeSalaWorker() {
		// TODO:
		return null;
	}

	public GameWorker waitForFreeGameWorker() {
		// TODO:
		return null;
	}
}
